import { getCategory1ListApi, getCategory2ListApi, getCategory3ListApi } from '@/api/product/category';
import { defineStore } from "pinia";
import type { CategoryState } from "./interface";

// 创建一个用于生成store的函数
export const useCategoryStore = defineStore('category', {

	state: (): CategoryState => ({
    category1Id: undefined, // 选择的一级id
    category2Id: undefined, // 选择的二级id
    category3Id: undefined, // 选择的三级id
    category1List: [], // 一级列表
    category2List: [], // 二级列表
    category3List: [], // 三级列表
  }),

	actions: {
     // 请求获取一级分类列表并更新category1List
    async getCategory1List () {
      this.category1List = await getCategory1ListApi()
    },
    //  请求获取二级分类列表并更新category2List
    async getCategory2List(category1Id: number) {
      // 将传入的一级id保存到state中
      this.category1Id = category1Id
      // 请求获取二级分类列表并更新category2List
      this.category2List = await getCategory2ListApi(category1Id)
      // 清除二三级分类id, 三级列表
      this.category2Id = undefined
      this.category3Id = undefined
      this.category3List = []
    },

    //  请求获取三级分类列表并更新category3List
    async getCategory3List(category2Id: number) {
      // 将传入的二级id保存到state中
      this.category2Id = category2Id
      // 请求获取三级分类列表并更新category3List
      this.category3List = await getCategory3ListApi(category2Id)
      // 清除三级ID
      this.category3Id = undefined
      
    } 
	},
});

// export default useCategoryStore